home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 June: Reference Library / Dev.CD Jun 95 / Dev.CD Jun 95.toast / What's New? / New System Software Extensions / QuickDraw 3D ß / Programming / Interfaces / QD3DTransform.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-04  |  9.0 KB  |  308 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DTransform.h                                             **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Transform routines                                          **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **     Copyright (C) 1991-1994 Apple Computer, Inc. All rights reserved.     **    
  10.  **                                                                          **
  11.  **                                                                          **
  12.  *****************************************************************************/
  13. #ifndef QD3DTransform_h
  14. #define QD3DTransform_h
  15.  
  16. #if PRAGMA_ONCE
  17.     #pragma once
  18. #endif
  19.  
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif    /* __cplusplus */
  23.  
  24. /******************************************************************************
  25.  **                                                                             **
  26.  **                            Transform Routines                                 **
  27.  **                                                                             **
  28.  *****************************************************************************/
  29.  
  30. EXPORT TQ3ObjectType Q3Transform_GetType(
  31.     TQ3TransformObject    transform);
  32.  
  33. EXPORT TQ3Matrix4x4 *Q3Transform_GetMatrix(
  34.     TQ3TransformObject    trasform,
  35.     TQ3Matrix4x4            *matrix);
  36.  
  37. EXPORT TQ3Status Q3Transform_Submit(
  38.     TQ3TransformObject    transform, 
  39.     TQ3ViewObject        view);
  40.  
  41.  
  42. /******************************************************************************
  43.  **                                                                             **
  44.  **                            MatrixTransform Routines                         **
  45.  **                                                                             **
  46.  *****************************************************************************/
  47.  
  48. EXPORT TQ3TransformObject Q3MatrixTransform_New(
  49.     const TQ3Matrix4x4     *matrix);
  50.  
  51. EXPORT TQ3Status Q3MatrixTransform_Submit(
  52.     const TQ3Matrix4x4     *matrix,
  53.     TQ3ViewObject        view);
  54.  
  55. EXPORT TQ3Status Q3MatrixTransform_Set(
  56.     TQ3TransformObject    transform, 
  57.     const TQ3Matrix4x4      *matrix);
  58.  
  59. EXPORT TQ3Status Q3MatrixTransform_Get(
  60.     TQ3TransformObject    transform,
  61.     TQ3Matrix4x4            *matrix);
  62.  
  63.  
  64. /******************************************************************************
  65.  **                                                                             **
  66.  **                            RotateTransform Data                             **
  67.  **                                                                             **
  68.  *****************************************************************************/
  69.  
  70. typedef struct TQ3RotateTransformData {
  71.     TQ3Axis                axis;
  72.     float                radians;
  73. } TQ3RotateTransformData;
  74.  
  75.  
  76. /******************************************************************************
  77.  **                                                                             **
  78.  **                            RotateTransform Routines                         **
  79.  **                                                                             **
  80.  *****************************************************************************/
  81.  
  82. EXPORT TQ3TransformObject Q3RotateTransform_New(
  83.     const TQ3RotateTransformData    *data);
  84.  
  85.  
  86. EXPORT TQ3Status Q3RotateTransform_Submit(
  87.     const TQ3RotateTransformData    *data,
  88.     TQ3ViewObject                view);
  89.  
  90. EXPORT TQ3Status Q3RotateTransform_SetData(
  91.     TQ3TransformObject            transform,
  92.     const TQ3RotateTransformData    *data);
  93.  
  94. EXPORT TQ3Status Q3RotateTransform_GetData(
  95.     TQ3TransformObject            transform,
  96.     TQ3RotateTransformData        *data);
  97.     
  98. EXPORT TQ3Status Q3RotateTransform_SetAxis(
  99.     TQ3TransformObject            transform,
  100.     TQ3Axis                        axis);
  101.  
  102. EXPORT TQ3Status Q3RotateTransform_SetAngle(
  103.     TQ3TransformObject            transform,
  104.     float                        radians);
  105.  
  106. EXPORT TQ3Status Q3RotateTransform_GetAxis(
  107.     TQ3TransformObject             renderable, 
  108.     TQ3Axis                         *axis);
  109.  
  110. EXPORT TQ3Status Q3RotateTransform_GetAngle(
  111.     TQ3TransformObject             transform, 
  112.     float                         *radians);
  113.  
  114.  
  115. /******************************************************************************
  116.  **                                                                             **
  117.  **                    RotateAboutPointTransform Data                             **
  118.  **                                                                             **
  119.  *****************************************************************************/
  120.  
  121. typedef struct TQ3RotateAboutPointTransformData {
  122.     TQ3Axis                        axis;
  123.     float                        radians;
  124.     TQ3Point3D                    about;
  125. } TQ3RotateAboutPointTransformData;
  126.  
  127.  
  128. /******************************************************************************
  129.  **                                                                             **
  130.  **                    RotateAboutPointTransform Routines                         **
  131.  **                                                                             **
  132.  *****************************************************************************/
  133.  
  134. EXPORT TQ3TransformObject Q3RotateAboutPointTransform_New(
  135.     const TQ3RotateAboutPointTransformData    *data);
  136.  
  137. EXPORT TQ3Status Q3RotateAboutPointTransform_Submit(
  138.     const TQ3RotateAboutPointTransformData    *data,
  139.     TQ3ViewObject                            view);
  140.  
  141. EXPORT TQ3Status Q3RotateAboutPointTransform_SetData(
  142.     TQ3TransformObject                        transform,
  143.     const TQ3RotateAboutPointTransformData    *data);
  144.  
  145. EXPORT TQ3Status Q3RotateAboutPointTransform_GetData(
  146.     TQ3TransformObject                        transform,
  147.     TQ3RotateAboutPointTransformData            *data);
  148.  
  149. EXPORT TQ3Status Q3RotateAboutPointTransform_SetAxis(
  150.     TQ3TransformObject                        transform,
  151.     TQ3Axis                                    axis);
  152.  
  153. EXPORT TQ3Status Q3RotateAboutPointTransform_GetAxis(
  154.     TQ3TransformObject                        transform,
  155.     TQ3Axis                                    *axis);
  156.  
  157.  
  158. EXPORT TQ3Status Q3RotateAboutPointTransform_SetAngle(
  159.     TQ3TransformObject                        transform,
  160.     float                                    radians);
  161.  
  162. EXPORT TQ3Status Q3RotateAboutPointTransform_GetAngle(
  163.     TQ3TransformObject                        transform,
  164.     float                                    *radians);
  165.  
  166.  
  167. EXPORT TQ3Status Q3RotateAboutPointTransform_SetAboutPoint(
  168.     TQ3TransformObject                        transform,
  169.     const TQ3Point3D                            *about);
  170.  
  171. EXPORT TQ3Status Q3RotateAboutPointTransform_GetAboutPoint(
  172.     TQ3TransformObject                        transform,
  173.     TQ3Point3D                                *about);
  174.  
  175.  
  176. /******************************************************************************
  177.  **                                                                             **
  178.  **                    RotateAboutAxisTransform Data                             **
  179.  **                                                                             **
  180.  *****************************************************************************/
  181.  
  182. typedef struct TQ3RotateAboutAxisTransformData {
  183.     TQ3Point3D            origin;
  184.     TQ3Vector3D            orientation;
  185.     float                radians;
  186. } TQ3RotateAboutAxisTransformData;
  187.  
  188.  
  189. /******************************************************************************
  190.  **                                                                             **
  191.  **                    RotateAboutAxisTransform Routines                         **
  192.  **                                                                             **
  193.  *****************************************************************************/
  194.  
  195. EXPORT TQ3TransformObject Q3RotateAboutAxisTransform_New(
  196.     const TQ3RotateAboutAxisTransformData    *data);
  197.  
  198. EXPORT TQ3Status Q3RotateAboutAxisTransform_Submit(
  199.     const TQ3RotateAboutAxisTransformData    *data,
  200.     TQ3ViewObject                            view);
  201.  
  202. EXPORT TQ3Status Q3RotateAboutAxisTransform_SetData(
  203.     TQ3TransformObject                        transform,
  204.     const TQ3RotateAboutAxisTransformData    *data);
  205.  
  206. EXPORT TQ3Status Q3RotateAboutAxisTransform_GetData(
  207.     TQ3TransformObject                        transform,
  208.     TQ3RotateAboutAxisTransformData            *data);
  209.  
  210.  
  211. EXPORT TQ3Status Q3RotateAboutAxisTransform_SetOrientation(
  212.     TQ3TransformObject                        transform,
  213.     const TQ3Vector3D                        *axis);
  214.  
  215. EXPORT TQ3Status Q3RotateAboutAxisTransform_GetOrientation(
  216.     TQ3TransformObject                        transform,
  217.     TQ3Vector3D                                *axis);
  218.  
  219.  
  220. EXPORT TQ3Status Q3RotateAboutAxisTransform_SetAngle(
  221.     TQ3TransformObject                        transform,
  222.     float                                    radians);
  223.  
  224. EXPORT TQ3Status Q3RotateAboutAxisTransform_GetAngle(
  225.     TQ3TransformObject                        transform,
  226.     float                                    *radians);
  227.  
  228.  
  229. EXPORT TQ3Status Q3RotateAboutAxisTransform_SetOrigin(
  230.     TQ3TransformObject                        transform,
  231.     const TQ3Point3D                            *origin);
  232.  
  233. EXPORT TQ3Status Q3RotateAboutAxisTransform_GetOrigin(
  234.     TQ3TransformObject                        transform,
  235.     TQ3Point3D                                *origin);
  236.  
  237.  
  238. /******************************************************************************
  239.  **                                                                             **
  240.  **                            ScaleTransform Routines                             **
  241.  **                                                                             **
  242.  *****************************************************************************/
  243.  
  244. EXPORT TQ3TransformObject Q3ScaleTransform_New(
  245.     const TQ3Vector3D        *scale);
  246.  
  247. EXPORT TQ3Status Q3ScaleTransform_Submit(
  248.     const TQ3Vector3D        *scale,
  249.     TQ3ViewObject            view);
  250.         
  251. EXPORT TQ3Status Q3ScaleTransform_Set(
  252.     TQ3TransformObject        transform,
  253.     const TQ3Vector3D        *scale);
  254.  
  255. EXPORT TQ3Status Q3ScaleTransform_Get(
  256.     TQ3TransformObject        transform,
  257.     TQ3Vector3D                *scale);
  258.  
  259.  
  260. /******************************************************************************
  261.  **                                                                             **
  262.  **                            TranslateTransform Routines                         **
  263.  **                                                                             **
  264.  *****************************************************************************/
  265.  
  266. EXPORT TQ3TransformObject Q3TranslateTransform_New(
  267.     const TQ3Vector3D        *translate);
  268.  
  269. EXPORT TQ3Status Q3TranslateTransform_Submit(
  270.     const TQ3Vector3D        *translate,
  271.     TQ3ViewObject            view);
  272.  
  273. EXPORT TQ3Status Q3TranslateTransform_Set(
  274.     TQ3TransformObject        transform,
  275.     const TQ3Vector3D        *translate);
  276.  
  277. EXPORT TQ3Status Q3TranslateTransform_Get(
  278.     TQ3TransformObject        transform,
  279.     TQ3Vector3D                *translate);
  280.  
  281. /******************************************************************************
  282.  **                                                                             **
  283.  **                            QuaternionTransform Routines                     **
  284.  **                                                                             **
  285.  *****************************************************************************/
  286.  
  287. EXPORT TQ3TransformObject Q3QuaternionTransform_New(
  288.     const TQ3Quaternion        *quaternion);
  289.  
  290. EXPORT TQ3Status Q3QuaternionTransform_Submit(
  291.     const TQ3Quaternion        *quaternion,
  292.     TQ3ViewObject            view);
  293.  
  294. EXPORT TQ3Status Q3QuaternionTransform_Set(
  295.     TQ3TransformObject        transform, 
  296.     const TQ3Quaternion         *quaternion);
  297.  
  298. EXPORT TQ3Status Q3QuaternionTransform_Get(
  299.     TQ3TransformObject        transform,
  300.     TQ3Quaternion            *quaternion);
  301.  
  302.  
  303. #ifdef __cplusplus
  304. }
  305. #endif    /* __cplusplus */
  306.  
  307. #endif  /*  QD3DTransform_h  */
  308.